package com.ygqh.baby.mapper;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ygqh.baby.ao.CardMode;
import com.ygqh.baby.ao.CardType;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.model.YgCardCouponInfo;
import com.ygqh.baby.po.YgCardCoupon;
import com.ygqh.baby.po.YgCardCouponExample;

public interface YgCardCouponMapper {
	int countByExample(YgCardCouponExample example);

	int deleteByExample(YgCardCouponExample example);

	int deleteByPrimaryKey(Long id);

	int insert(YgCardCoupon record);

	int insertSelective(YgCardCoupon record);

	List<YgCardCoupon> selectByExample(YgCardCouponExample example);

	YgCardCoupon selectByPrimaryKey(Long id);

	int updateByExampleSelective(@Param("record") YgCardCoupon record, @Param("example") YgCardCouponExample example);

	int updateByExample(@Param("record") YgCardCoupon record, @Param("example") YgCardCouponExample example);

	int updateByPrimaryKeySelective(YgCardCoupon record);

	int updateByPrimaryKey(YgCardCoupon record);

	int countSuper(@Param("cardType") CardType cardType, @Param("cardMode") CardMode cardMode,
			@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("q") String q);

	List<YgCardCoupon> selectSuper(@Param("queryInfo") QueryInfo queryInfo, @Param("cardType") CardType cardType,
			@Param("cardMode") CardMode cardMode, @Param("startDate") Date startDate, @Param("endDate") Date endDate,
			@Param("q") String q);

	List<YgCardCoupon> selectCardsByMonth(@Param("cardType") CardType cardType,
			@Param("cardMode") CardMode cardMode, @Param("startDate") Date startDate, @Param("endDate") Date endDate);

}
